package com.yuandian.customer.perception.controller;

import com.yuandian.api.customer_perception.po.TopBaseParams;
import com.yuandian.bpm.common.core.util.R;
import com.yuandian.customer.perception.service.ISystemTopAnalysisService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;

/**
 * 类说明: 全系统TOP 分析服务
 *
 * @Date 2021/8/19 9:23
 * @Author User
 */

@RestController
@Api(value = "TOP 分析接口", tags = "TOP 分析接口")
@RequestMapping(value = "/top/system")
public class SystemTopAnalysisController {

    @Resource
    private ISystemTopAnalysisService service;


    /**
     * 查询全系统TOP 分析总览
     *
     * @param params 请求参数
     * @return 通用返回对象
     */
	@ApiOperation(value = "TOP 分析-查询全系统TOP 分析总览", notes = "TOP 分析-查询全系统TOP 分析总览")
	@PostMapping(value = "/overview")
    public R<Object> queryOverview (@RequestBody TopBaseParams params) {
        return service.queryTopAnalysisOverview(params);
    }


    /**
     * 查询全系统受理量TOPN
     *
     * @param params 请求参数
     * @return 通用返回对象
     */
	@ApiOperation(value = "TOP 分析-查询全系统受理量TOPN", notes = "TOP 分析-查询全系统受理量TOPN")
	@PostMapping(value = "/complete/topN")
    public R<Object> queryCompleteTopN (@RequestBody TopBaseParams params) {
        return service.queryCompleteTopN(params);
    }


    /**
     * 查询全系统失败量topN
     *
     * @param params 请求参数
     * @return 通用返回对象
     */
	@ApiOperation(value = "TOP 分析-查询全系统失败量topN", notes = "TOP 分析-查询全系统失败量topN")
	@PostMapping(value = "/fail/topN")
    public R<Object> queryFailTopN (@RequestBody TopBaseParams params) {
        return service.queryFailTopN(params);
    }


    /**
     * 查询全系统人工操作平均耗时topN
     *
     * @param params 请求参数
     * @return 通用返回对象
     */
	@ApiOperation(value = "TOP 分析-查询全系统人工操作平均耗时topN", notes = "TOP 分析-查询全系统人工操作平均耗时topN")
	@PostMapping(value = "/queryAvgVisitTimeTopN")
    public R<Object> queryAvgVisitTimeTopN (@RequestBody TopBaseParams params) {
        return service.queryAvgVisitTimeTopN(params);
    }


    /**
     * 查询全系统响应平均耗时topN
     *
     * @param params 请求参数
     * @return 通用返回对象
     */
	@ApiOperation(value = "TOP 分析-查询全系统响应平均耗时topN", notes = "TOP 分析-查询全系统响应平均耗时topN")
	@PostMapping(value = "/queryAvgResponseTimeTopN")
    public R<Object> queryAvgResponseTimeTopN (@RequestBody TopBaseParams params) {
        return service.queryAvgResponseTimeTopN(params);
    }
}
